%% == Erlang Compiler ==

{erl_opts,
 [warn_unused_vars,
  warn_export_all,
  warn_shadow_vars,
  warn_unused_import,
  warn_unused_function,
  warn_bif_clash,
  warn_unused_record,
  warn_deprecated_function,
  warn_obsolete_guard,
  strict_validation,
  warn_export_vars,
  warn_exported_vars,
  warn_missing_spec,
  warn_untyped_record,
  debug_info]}.

{minimum_otp_vsn, "21"}.

%% == Dependencies ==

{deps, [{worker_pool, "5.1.0"}]}.

%% == Profiles ==

{profiles, [{test, [{deps, [{meck, "0.9.2"}]}]}]}.

%% == Common Test ==

{ct_compile_opts,
 [warn_unused_vars,
  warn_export_all,
  warn_shadow_vars,
  warn_unused_import,
  warn_unused_function,
  warn_bif_clash,
  warn_unused_record,
  warn_deprecated_function,
  warn_obsolete_guard,
  strict_validation,
  warn_export_vars,
  warn_exported_vars,
  warn_missing_spec,
  warn_untyped_record,
  debug_info]}.

{ct_opts, [{sys_config, ["test/test.config"]}]}.

%% == Plugins ==

{project_plugins,
 [{rebar3_hex, "~> 6.11.7"},
  {rebar3_format, "~> 1.0.1"},
  {rebar3_lint, "~> 1.0.1"},
  {rebar3_hank, "~> 1.2.2"},
  {coveralls, "~> 2.2.0"},
  {rebar3_codecov, "~> 0.2.0"}]}.

%% == Cover ==

{cover_enabled, true}.

{cover_export_enabled, true}.

{cover_opts, [verbose]}.

%% == EDoc ==

{edoc_opts,
 [{report_missing_types, true},
  {source_path, ["src"]},
  {report_missing_types, true},
  {todo, true},
  {packages, false},
  {subpackages, false}]}.

%% == Dialyzer ==

{dialyzer,
 [{plt_apps, top_level_deps},
  {plt_extra_apps, []},
  {plt_location, local},
  {plt_prefix, "sheldon"},
  {base_plt_location, "."},
  {base_plt_prefix, "sheldon"}]}.

{erl_first_files, ["src/adapter/sheldon_adapter.erl"]}.

%% == Alias ==

{alias,
 [{test, [compile, format, lint, hank, dialyzer, {ct, "--verbose"}, cover, edoc]}]}.

%% == Format ==

{format,
 [{files,
   ["*.config",
    "src/adapter/*",
    "src/*.erl",
    "examples/*.erl",
    "test/*.erl",
    "test/*.config"]}]}.

%% == Shell ==

{shell, [{apps, [sheldon]}]}.
